home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / ctutor.exe / SOURCE / WHATNEXT.C < prev    next >
C/C++ Source or Header  |  1994-05-15  |  3KB  |  73 lines

  1. /* *************************************************************** */
  2. /* This program reads a series of words from the command line,     */
  3. /* and displays all but the last on the monitor. The last is a     */
  4. /* series of characters which are used as input comparisons. One   */
  5. /* character is read from the keyboard. If it is one of the        */
  6. /* characters in the comparison list, its number is returned to    */
  7. /* DOS as the errorlevel command. If the character does not exist  */
  8. /* in the list, a zero is returned. Example follows;               */
  9. /*                                                                 */
  10. /* WHATNEXT What model do you want? ALR%3T                         */
  11. /*                                                                 */
  12. /* What model do you want?      <---- displayed on monitor         */
  13. /*    If key a or A is hit, errorlevel 1 is returned.              */
  14. /*    If key l or L is hit, errorlevel 2 is returned.              */
  15. /*    If key r or R is hit, errorlevel 3 is returned.              */
  16. /*    If key % is hit, errorlevel 4 is returned.                   */
  17. /*    If key 3 is hit, errorlevel 5 is returned.                   */
  18. /*    If key t or T is hit, errorlevel 6 is returned.              */
  19. /*    If any other key is hit, errorlevel 0 is returned.           */
  20. /*                                                                 */
  21. /*  The question must be on one line.                              */
  22. /*  Up to nine different keys can be used.                         */
  23. /*  The errorlevel can be interpreted in a batchfile.              */
  24. /* *************************************************************** */
  25.  
  26. #include <stdio.h>
  27. #include <ctype.h>
  28. #include <conio.h>
  29. #include <process.h>
  30.  
  31. main(int argc, char *argv[])
  32. {
  33. int   index;         /* a counter and incrementing variable        */
  34. int   c;             /* the character read in for comparison       */
  35. int   code;          /* the resulting errorlevel returned to       */
  36. char  next_char;     /* used for the comparison loop               */
  37. char *point;         /* a dummy pointer used for convenience       */
  38.  
  39.                      /* At least one group must be used for this   */
  40.                      /* filename, and one group used for the       */
  41.                      /* required fields, so less than three allows */
  42.                      /* for no question.                           */
  43.    if (argc < 3) {
  44.       printf("No question given on command line\n");
  45.       exit(0);
  46.    }
  47.  
  48.                      /* print out words 2 to n-1, the question     */
  49.    for(index = 1 ; index < argc - 1 ; index++) {
  50.       printf("%s ", argv[index]);
  51.    }
  52.  
  53.                    /* get the users response and make it uppercase */
  54.    c = getch();
  55.    printf("%c\n", c);
  56.    if (islower(c))
  57.       c = toupper(c);
  58.    point = argv[argc - 1];  /* point to last pointer on the inputs */
  59.  
  60.    code = 0;
  61.    index = 0;
  62.    do {            /* search across allowed responses in last word */
  63.       next_char = *(point + index);
  64.       if (islower(next_char))
  65.          next_char = toupper(next_char);      /* make it uppercase */
  66.       if(next_char == c)       /* if a match is found              */
  67.          code = index + 1;     /* save the number of the match     */
  68.       index++;
  69.    } while (*(point + index)); /* until NULL terminator found      */
  70.  
  71.    exit(code);               /* return the errorcode to the system */
  72. }
  73.